﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using MJM.SPP.EntidadesNegocio;
using MJM.CBD.Conn;

namespace MJM.SPP.AccesoDatos
{
    public class RestriccionUsuarioAD
    {

        public int Insertar(RestriccionUsuarioEN obj)
        {
            int codigo=0;
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_i_T_WEB_RESCUE_Insertar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmID, prmUsuario, prmLun, prmMar, prmMie, prmJue, prmVie, prmSab, prmDom, prmFec, prmHorIni, prmHorFin;
            try
            {
                prmID = cmd.CreateParameter();
                prmID.Direction= ParameterDirection.ReturnValue;
                prmID.SqlDbType = SqlDbType.Int;
                cmd.Parameters.Add(prmID);

                prmUsuario = cmd.CreateParameter();
                prmUsuario.ParameterName = "@vUSUPAD_P_chUSU";
                prmUsuario.SqlDbType = SqlDbType.VarChar;
                prmUsuario.Value = obj.USUPAD_P_chUSU;
                cmd.Parameters.Add(prmUsuario);

                prmLun = cmd.CreateParameter();
                prmLun.ParameterName = "@vRESCUE_inDIALUN";
                prmLun.SqlDbType = SqlDbType.Int;
                prmLun.Value = obj.RESCUE_inDIALUN;
                cmd.Parameters.Add(prmLun);

                prmMar = cmd.CreateParameter();
                prmMar.ParameterName = "@vRESCUE_inDIAMAR";
                prmMar.SqlDbType = SqlDbType.Int;
                prmMar.Value = obj.RESCUE_inDIAMAR;
                cmd.Parameters.Add(prmMar);

                prmMie = cmd.CreateParameter();
                prmMie.ParameterName = "@vRESCUE_inDIAMIE";
                prmMie.SqlDbType = SqlDbType.Int;
                prmMie.Value = obj.RESCUE_inDIAMIE;
                cmd.Parameters.Add(prmMie);

                prmJue = cmd.CreateParameter();
                prmJue.ParameterName = "@vRESCUE_inDIAJUE";
                prmJue.SqlDbType = SqlDbType.Int;
                prmJue.Value = obj.RESCUE_inDIAJUE;
                cmd.Parameters.Add(prmJue);

                prmVie = cmd.CreateParameter();
                prmVie.ParameterName = "@vRESCUE_inDIAVIE";
                prmVie.SqlDbType = SqlDbType.Int;
                prmVie.Value = obj.RESCUE_inDIAVIE;
                cmd.Parameters.Add(prmVie);

                prmSab = cmd.CreateParameter();
                prmSab.ParameterName = "@vRESCUE_inDIASAB";
                prmSab.SqlDbType = SqlDbType.Int;
                prmSab.Value = obj.RESCUE_inDIASAB;
                cmd.Parameters.Add(prmSab);                

                prmDom = cmd.CreateParameter();
                prmDom.ParameterName = "@vRESCUE_inDIADOM";
                prmDom.SqlDbType = SqlDbType.Int;
                prmDom.Value = obj.RESCUE_inDIADOM;
                cmd.Parameters.Add(prmDom);

                prmFec = cmd.CreateParameter();
                prmFec.ParameterName = "@vRESCUE_chFECCAD";
                prmFec.SqlDbType = SqlDbType.VarChar;
                prmFec.Value = obj.RESCUE_chFECCAD;
                cmd.Parameters.Add(prmFec);

                prmHorIni = cmd.CreateParameter();
                prmHorIni.ParameterName = "@vRESCUE_inHORINI";
                prmHorIni.SqlDbType = SqlDbType.Int;
                prmHorIni.Value = obj.RESCUE_inHORINI;
                cmd.Parameters.Add(prmHorIni);

                prmHorFin = cmd.CreateParameter();
                prmHorFin.ParameterName = "@vRESCUE_inHORFIN";
                prmHorFin.SqlDbType = SqlDbType.Int;
                prmHorFin.Value = obj.RESCUE_inHORFIN;
                cmd.Parameters.Add(prmHorFin);

                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                codigo = Convert.ToInt32(prmID.Value);
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();

            }
            catch(Exception ex)
            {
                codigo = 0;
                cmd.Dispose();
                conn.Dispose();
            }
            return codigo;
        }

        public List<RestriccionUsuarioEN> Listar()
        {
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_s_T_WEB_RESCUE_Listar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            List<RestriccionUsuarioEN> lst = new List<RestriccionUsuarioEN>();
            SqlDataReader dr;
            try
            {
                cmd.Connection.Open();
                dr = cmd.ExecuteReader();
                RestriccionUsuarioEN obj;
                while (dr.Read())
                {
                    obj = new RestriccionUsuarioEN();
                    obj.RESCUE_P_inID= dr.GetInt32(0);
                    obj.USUPAD_P_chUSU = dr.GetString(1);
                    obj.RESCUE_inDIALUN = dr.GetInt32(2);
                    obj.RESCUE_inDIAMAR = dr.GetInt32(3);
                    obj.RESCUE_inDIAJUE = dr.GetInt32(5);
                    obj.RESCUE_inDIAMIE = dr.GetInt32(4);
                //    obj.RESCUE_inDIAMAR = dr.GetInt32(6);
                    obj.RESCUE_inDIAVIE = dr.GetInt32(6);
                    obj.RESCUE_inDIASAB = dr.GetInt32(7);
                    obj.RESCUE_inDIADOM = dr.GetInt32(8);
                    obj.RESCUE_chFECCAD = dr.GetString(9);
                    obj.RESCUE_inHORINI = dr.GetInt32(10);
                    obj.RESCUE_inHORFIN = dr.GetInt32(11);
                    obj.RESCUE_inFLAELI = dr.GetInt32(12);
                     lst.Add(obj);
                }
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch(Exception ex)
            {
                cmd.Dispose();
                conn.Dispose();
            }
            return lst;
        }

        public int Modificar(RestriccionUsuarioEN obj)
        {
            int codigo = 1;
            SqlConnection conn = new SqlConnection(Cadena.GetCadenaPadron());
            SqlCommand cmd = new SqlCommand("sp_u_T_WEB_RESCUE_Actualizar", conn);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlParameter prmID, prmUsuario, prmLun, prmMar, prmMie, prmJue, prmVie, prmSab, prmDom, prmFec, prmHorIni, prmHorFin,prmEliminado;
            try
            {
                prmID = cmd.CreateParameter();
                prmID.ParameterName = "@vRESCUE_P_inID";
                prmID.SqlDbType = SqlDbType.Int;
                prmID.Value = obj.RESCUE_P_inID;
                cmd.Parameters.Add(prmID);

                prmUsuario = cmd.CreateParameter();
                prmUsuario.ParameterName = "@vUSUPAD_P_chUSU";
                prmUsuario.SqlDbType = SqlDbType.VarChar;
                prmUsuario.Value = obj.USUPAD_P_chUSU;
                cmd.Parameters.Add(prmUsuario);

                prmLun = cmd.CreateParameter();
                prmLun.ParameterName = "@vRESCUE_inDIALUN";
                prmLun.SqlDbType = SqlDbType.Int;
                prmLun.Value = obj.RESCUE_inDIALUN;
                cmd.Parameters.Add(prmLun);

                prmMar = cmd.CreateParameter();
                prmMar.ParameterName = "@vRESCUE_inDIAMAR";
                prmMar.SqlDbType = SqlDbType.Int;
                prmMar.Value = obj.RESCUE_inDIAMAR;
                cmd.Parameters.Add(prmMar);

                prmMie = cmd.CreateParameter();
                prmMie.ParameterName = "@vRESCUE_inDIAMIE";
                prmMie.SqlDbType = SqlDbType.Int;
                prmMie.Value = obj.RESCUE_inDIAMIE;
                cmd.Parameters.Add(prmMie);

                prmJue = cmd.CreateParameter();
                prmJue.ParameterName = "@vRESCUE_inDIAJUE";
                prmJue.SqlDbType = SqlDbType.Int;
                prmJue.Value = obj.RESCUE_inDIAJUE;
                cmd.Parameters.Add(prmJue);

                prmVie = cmd.CreateParameter();
                prmVie.ParameterName = "@vRESCUE_inDIAVIE";
                prmVie.SqlDbType = SqlDbType.Int;
                prmVie.Value = obj.RESCUE_inDIAVIE;
                cmd.Parameters.Add(prmVie);

                prmSab = cmd.CreateParameter();
                prmSab.ParameterName = "@vRESCUE_inDIASAB";
                prmSab.SqlDbType = SqlDbType.Int;
                prmSab.Value = obj.RESCUE_inDIASAB;
                cmd.Parameters.Add(prmSab);

                prmDom = cmd.CreateParameter();
                prmDom.ParameterName = "@vRESCUE_inDIADOM";
                prmDom.SqlDbType = SqlDbType.Int;
                prmDom.Value = obj.RESCUE_inDIADOM;
                cmd.Parameters.Add(prmDom);

                prmFec = cmd.CreateParameter();
                prmFec.ParameterName = "@vRESCUE_chFECCAD";
                prmFec.SqlDbType = SqlDbType.VarChar;
                prmFec.Value = obj.RESCUE_chFECCAD;
                cmd.Parameters.Add(prmFec);

                prmHorIni = cmd.CreateParameter();
                prmHorIni.ParameterName = "@vRESCUE_inHORINI";
                prmHorIni.SqlDbType = SqlDbType.Int;
                prmHorIni.Value = obj.RESCUE_inHORINI;
                cmd.Parameters.Add(prmHorIni);

                prmHorFin = cmd.CreateParameter();
                prmHorFin.ParameterName = "@vRESCUE_inHORFIN";
                prmHorFin.SqlDbType = SqlDbType.Int;
                prmHorFin.Value = obj.RESCUE_inHORFIN;
                cmd.Parameters.Add(prmHorFin);

                prmEliminado = cmd.CreateParameter();
                prmEliminado.ParameterName = "@vRESCUE_inFLAELI";
                prmEliminado.SqlDbType = SqlDbType.Int;
                prmEliminado.Value = obj.RESCUE_inFLAELI;
                cmd.Parameters.Add(prmEliminado);

                cmd.Connection.Open();
                cmd.ExecuteNonQuery();
                cmd.Connection.Close();
                cmd.Dispose();
                conn.Dispose();
            }
            catch (Exception ex)
            {
                codigo = 0;
                cmd.Dispose();
                conn.Dispose();
            }

            return codigo;
        }
        
    }
}
